home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 January: Mac OS SDK / Dev.CD Jan 97 SDK2.toast / Development Kits (Disc 2) / OpenDoc Development Framework / ODFDev / ODF / OS / FWGraphx / SLMaping.h < prev    next >
Encoding:
Text File  |  1996-09-17  |  7.5 KB  |  276 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                SLMaping.h
  4. //    Release Version:    $ ODF 2 $
  5. //
  6. //    Copyright:    (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  7. //
  8. //========================================================================================
  9.  
  10. #ifndef SLMAPING_H
  11. #define SLMAPING_H
  12.  
  13. #ifndef SLPTRECT_H
  14. #include "SLPtRect.h"
  15. #endif
  16.  
  17. #ifndef SLGDEV_H
  18. #include "SLGDev.h"
  19. #endif
  20.  
  21. #ifndef FWSTDDEF_H
  22. #include "FWStdDef.h"
  23. #endif
  24.  
  25. //========================================================================================
  26. //    Forward Class Declarations
  27. //========================================================================================
  28.  
  29. class ODShape;
  30. class ODTransform;
  31.  
  32. //========================================================================================
  33. //    Constants
  34. //========================================================================================
  35.  
  36. enum FW_EMappingModes
  37. {
  38.     FW_kCentimeter,
  39.     FW_kInch,
  40.     FW_kPoint,
  41.     FW_kDevice,
  42.     FW_kCustomConstrained,
  43.     FW_kCustomUnconstrained
  44. };
  45.  
  46. //========================================================================================
  47. //    STRUCT FW_SMapping
  48. //========================================================================================
  49.  
  50. struct FW_SMapping
  51. {
  52.     FW_EMappingModes        fMappingMode;
  53.     
  54.     FW_SPoint                fLogicalExtent;
  55.     FW_SPoint                fDeviceExtent;        
  56.  
  57.     FW_SPoint                fDeviceOrg;
  58.     FW_SPoint                fLogicalOrg;
  59.  
  60.     FW_PlatformPoint        fOriginOffset;
  61.  
  62.     // ----- Cache -----
  63.     FW_HGDevice                fRecentDevice;
  64.     ODTransform*            fRecentODTransform;
  65.     
  66.     FW_Boolean                fHaveTransforms;
  67.  
  68.     ODTransform*            fLogicalToContentTransform;
  69.     ODTransform*            fContentToDeviceTransform;
  70.     ODTransform*            fLogicalToDeviceTransform;
  71. };
  72.  
  73. //========================================================================================
  74. //    Mapping functions
  75. //========================================================================================
  76.  
  77. // Export or Import functions for CFM-68K [sfu]
  78.  
  79. #if defined(FW_ODFLIB_IMPORT)
  80. #pragma import on
  81. #elif defined(FW_ODFLIB)
  82. #pragma export on
  83. #endif
  84.  
  85. FW_EXTERN_C_BEGIN
  86.  
  87. // Init/destroy
  88.  
  89. void        SL_API            FW_PrivMapping_Init(FW_SMapping& mapping, FW_EMappingModes mappingMode);
  90. void        SL_API            FW_PrivMapping_InitFromCopy(FW_SMapping& mapping, const FW_SMapping& mapping2);
  91. void        SL_API            FW_PrivMapping_Term(FW_SMapping& mapping, Environment* ev);
  92.  
  93. // Set/get mapping
  94.  
  95. void        SL_API            FW_PrivMapping_Reset(FW_SMapping& mapping, Environment* ev);
  96. void        SL_API            FW_PrivMapping_SetMode(FW_SMapping& mapping, Environment* ev, FW_EMappingModes newMappingMode);
  97. void        SL_API            FW_PrivMapping_SetExtents(
  98.                                 FW_SMapping& mapping,
  99.                                 Environment* ev,
  100.                                 const FW_SPoint& logicalExtent,
  101.                                 const FW_SPoint& deviceExtent);
  102.  
  103. void        SL_API            FW_PrivMapping_SetDeviceOrigin(FW_SMapping& mapping, Environment* ev, FW_Fixed x, FW_Fixed y);
  104. void        SL_API            FW_PrivMapping_SetLogicalOrigin(FW_SMapping& mapping, Environment* ev, FW_Fixed x, FW_Fixed y);
  105.  
  106. void        SL_API            FW_PrivMapping_GetOriginOffset(
  107.                                 const FW_SMapping& mapping,
  108.                                 Environment* ev,
  109.                                 FW_PlatformPoint& offset,
  110.                                 FW_HGDevice device,
  111.                                 ODTransform* transform);
  112.  
  113. // Conversion
  114.  
  115.     // ----- Logical ---> Content
  116.  
  117. void        SL_API            FW_PrivMapping_LogicalToContentPoint(
  118.                                 const FW_SMapping& mapping,
  119.                                 Environment* ev,
  120.                                 const FW_SPoint& ptFrom,
  121.                                 FW_SPoint& ptTo,
  122.                                 FW_HGDevice device,
  123.                                 ODTransform* transform);
  124.  
  125. void        SL_API            FW_PrivMapping_LogicalToContentRect(
  126.                                 const FW_SMapping& mapping,
  127.                                 Environment* ev,
  128.                                 const FW_SRect& rectFrom,
  129.                                 FW_SRect& rectTo,
  130.                                 FW_HGDevice device,
  131.                                 ODTransform* transform);
  132.     
  133. ODShape*    SL_API            FW_PrivMapping_LogicalToContentShape(
  134.                                 const FW_SMapping& mapping,
  135.                                 Environment* ev,
  136.                                 ODShape* shape,
  137.                                 FW_HGDevice device,
  138.                                 ODTransform* transform);
  139.  
  140.     // ----- Logical ---> Device
  141.  
  142. void        SL_API            FW_PrivMapping_LogicalToDevicePoint(
  143.                                 const FW_SMapping& mapping,
  144.                                 Environment* ev,
  145.                                 const FW_SPoint& ptFrom,
  146.                                 FW_PlatformPoint& ptTo,
  147.                                 FW_HGDevice device,
  148.                                 ODTransform* transform);
  149.  
  150. void        SL_API            FW_PrivMapping_LogicalToDeviceRect(
  151.                                 const FW_SMapping& mapping,
  152.                                 Environment* ev,
  153.                                 const FW_SRect& rectFrom,
  154.                                 FW_PlatformRect& rectTo,
  155.                                 FW_HGDevice device,
  156.                                 ODTransform* transform);
  157.  
  158. ODShape*    SL_API            FW_PrivMapping_LogicalToDeviceShape(
  159.                                 const FW_SMapping& mapping,
  160.                                 Environment* ev,
  161.                                 ODShape* shape,
  162.                                 FW_HGDevice device,
  163.                                 ODTransform* transform);
  164.  
  165.     // ----- Device ---> Logical
  166.  
  167. void        SL_API            FW_PrivMapping_DeviceToLogicalPoint(
  168.                                 const FW_SMapping& mapping,
  169.                                 Environment* ev,
  170.                                 const FW_PlatformPoint& ptFrom,
  171.                                 FW_SPoint& ptTo,
  172.                                 FW_HGDevice device,
  173.                                 ODTransform* transform);
  174.  
  175. void        SL_API            FW_PrivMapping_DeviceToLogicalRect(
  176.                                 const FW_SMapping& mapping,
  177.                                 Environment* ev,
  178.                                 const FW_PlatformRect& rectFrom,
  179.                                 FW_SRect& rectTo,
  180.                                 FW_HGDevice device,
  181.                                 ODTransform* transform);
  182.     
  183. ODShape*    SL_API            FW_PrivMapping_DeviceToLogicalShape(
  184.                                 const FW_SMapping& mapping,
  185.                                 Environment* ev,
  186.                                 ODShape* shape,
  187.                                 FW_HGDevice device,
  188.                                 ODTransform* transform);
  189.  
  190.     // ----- Device ---> Content
  191.  
  192. void        SL_API            FW_PrivMapping_DeviceToContentPoint(
  193.                                 const FW_SMapping& mapping,
  194.                                 Environment* ev,
  195.                                 const FW_PlatformPoint& ptFrom,
  196.                                 FW_SPoint& ptTo,
  197.                                 FW_HGDevice device,
  198.                                 ODTransform* transform);
  199.     
  200. void        SL_API            FW_PrivMapping_DeviceToContentRect(
  201.                                 const FW_SMapping& mapping,
  202.                                 Environment* ev,
  203.                                 const FW_PlatformRect& rectFrom,
  204.                                 FW_SRect& rectTo,
  205.                                 FW_HGDevice device,
  206.                                 ODTransform* transform);
  207.     
  208. ODShape*    SL_API            FW_PrivMapping_DeviceToContentShape(
  209.                                 const FW_SMapping& mapping,
  210.                                 Environment* ev,
  211.                                 ODShape* shape,
  212.                                 FW_HGDevice device,
  213.                                 ODTransform* transform);
  214.  
  215.     // ----- Content ---> Logical
  216.                             
  217. void        SL_API            FW_PrivMapping_ContentToLogicalPoint(
  218.                                 const FW_SMapping& mapping,
  219.                                 Environment* ev,
  220.                                 const FW_SPoint& ptFrom,
  221.                                 FW_SPoint& ptTo,
  222.                                 FW_HGDevice device,
  223.                                 ODTransform* transform);
  224.     
  225. void        SL_API            FW_PrivMapping_ContentToLogicalRect(
  226.                                 const FW_SMapping& mapping,
  227.                                 Environment* ev,
  228.                                 const FW_SRect& rectFrom,
  229.                                 FW_SRect& rectTo,
  230.                                 FW_HGDevice device,
  231.                                 ODTransform* transform);
  232.     
  233. ODShape*    SL_API            FW_PrivMapping_ContentToLogicalShape(
  234.                                 const FW_SMapping& mapping,
  235.                                 Environment* ev,
  236.                                 ODShape* shape,
  237.                                 FW_HGDevice device,
  238.                                 ODTransform* transform);
  239.  
  240.     // ----- Content ---> Device
  241.  
  242. void        SL_API            FW_PrivMapping_ContentToDevicePoint(
  243.                                 const FW_SMapping& mapping,
  244.                                 Environment* ev,
  245.                                 const FW_SPoint& ptFrom,
  246.                                 FW_PlatformPoint& ptTo,
  247.                                 FW_HGDevice device,
  248.                                 ODTransform* transform);
  249.     
  250. void        SL_API            FW_PrivMapping_ContentToDeviceRect(
  251.                                 const FW_SMapping& mapping,
  252.                                 Environment* ev,
  253.                                 const FW_SRect& rectFrom,
  254.                                 FW_PlatformRect& rectTo,
  255.                                 FW_HGDevice device,
  256.                                 ODTransform* transform);
  257.     
  258. ODShape*    SL_API            FW_PrivMapping_ContentToDeviceShape(
  259.                                 const FW_SMapping& mapping,
  260.                                 Environment* ev,
  261.                                 ODShape* shape,
  262.                                 FW_HGDevice device,
  263.                                 ODTransform* transform);
  264.  
  265. FW_EXTERN_C_END
  266.  
  267. // For CFM-68K [sfu]
  268.  
  269. #if defined(FW_ODFLIB_IMPORT)
  270. #pragma import off
  271. #elif defined(FW_ODFLIB)
  272. #pragma export off
  273. #endif
  274.  
  275. #endif // SLMAPING_H
  276.